Урок 38.
Тема. Елемент керування «багаторядкове текстове поле». Алгоритми опрацювання табличних величин.
Завдання:
1. Опрацювати теоретичний матеріал.
Уведення та виведення значень табличної величини
Для введення та виведення значень елементів табличної величини в середовищі Lazarus можна скористатися багаторядковим текстовим полем (компонент (елемент керування) TMemo на вкладці Standard), яке можна розмістити на формі так само, як й інші компоненти (мал. 1.).
Основне призначення компонента TMemo — робота з великою кількістю рядків (введення, відображення і редагування текстового матеріалу).
Для роботи з буфером обміну можна використовувати загальноприйняті гарячі клавіші: Ctrl + X — вирізати, Ctrl + C — копіювати; Ctrl + V — вставити.
Розглянемо властивості багаторядкового текстового поля:
Властивість | Опис |
---|---|
Name | Ім’я компонента. Використовується в програмі для доступу до компонента і його властивостей, зокрема для доступу до тексту, введеного в поле. |
Text | Текст, що знаходиться в полі TMemo. Розглядається як єдине ціле. |
Lines | Масив рядків, відповідний вмісту поля. Доступ до рядка здійснюється за номером. Рядки нумеруються з нуля. |
Lines.Count | Кількість рядків тексту в поле TMemo. |
Left | Відстань від лівої межі поля до лівої межі форми. |
Top | Відстань від верхньої межі поля до верхньої межі форми. |
Width | Ширина поля. |
Height | Висота поля. |
Font | Шрифт, що використовується для відображення тексту. |
ParentFont | Ознака успадкування властивостей шрифту батьківського елемента. |
WantReturns | Клавіша для введення кінця рядка: TRUE — клавіша ENTER; FALSE — поєднання клавіш CTRL + ENTER. |
WordWrap | Перехід в початок наступного рядка при введенні довгих рядків: TRUE — проводиться автоматично; FALSE — не проводиться. Прі ввімкненій горизонтальній смузі прокрутки ця властивість ігнорується. |
ScrollBar | Використання смуги прокрутки, якщо текст великий і не поміщається в компоненті TMemo: ssNone — смуги прокрутки відсутні; ssHorizontal — встановлено горизонтальна прокрутка; ssVertical — встановлено вертикальна прокрутка; ssBoth — встановлені дві смуги прокрутки. |
ReadOnly | Дозволяє або забороняє редагування тексту. (Програмно все одно текст можна додавати). |
Введення даних за допомогою поля TMemo зводиться до циклу, в якому, за допомогою властивості Lines
, зчитуються рядки тексту. Наприклад:
Для поля TMemo із ім'ям Memo1
procedure TForml.ButtonlClick(Sender: TObject);
var a: array [0..9] of real; i: integer;
begin
for i := 0 to 9 do
a[i] := Memol.Lines[i]; // дані з рядків багаторядкового текстового поля присвоїти відповідним елементам табличної величини a
end;
Для введення числових величин дані з рядків переводять у числа за допомогою функції StrToFloat
. Наприклад:
Для поля TMemo із ім'ям Memo1
procedure TForml.ButtonlClick(Sender: TObject);
var a: array [0..9] of real; i: integer;
begin
for i := 0 to 9 do
a[i] := StrToFloat(Memol.Lines[i]); // дані з рядків багаторядкового текстового поля перевести в числа та присвоїти відповідним елементам табличної величини a
end;
Для виведення табличної величини за допомогою поля TMemo використовують метод Lines.Append
. Цей метод дозволяє додавати до тексту в багаторядковому полі новий рядок. Тому застосовуючи цей метод в циклі можна вивести табличну величину в текстове поле TMemo. Перед виведенням в багаторядкове текстове поле його слід очистити за допомогою методу Clear
. Наприклад:
Для поля TMemo із ім'ям Memo1
procedure TForml.ButtonlClick(Sender: TObject);
var a: = ["один","два","три","чотири","п'ять","шість","сім","вісім","дев'ять"]; i: integer;
begin
Memo1.Clear; //очистити багаторядкове текстове поле
for i := 0 to 9 do
Memo1.Lines.Append(a[i]); // вивести значення елементів табличної величини в рядки другого багаторядкового текстового поля
end;
Для виведення числових величин дані з чисел переводять у рядки за допомогою функції FloatToStr
. Наприклад:
Для поля TMemo із ім'ям Memo1
procedure TForml.ButtonlClick(Sender: TObject);
var a: = [1,2,3,4,5,6,7,8,9]; i: integer;
begin
Memo1.Clear; //очистити багаторядкове текстове поле
for i := 0 to 9 do
Memo1.Lines.Append(FloatToStr(a[i])); // вивести значення елементів табличної величини в рядки другого багаторядкового текстового поля
end;
Завдання 1. Ввести значення елементів табличної величини з 10 чисел, що містяться в рядках багаторядкового текстового поля, піднести ці числа до квадрата і вивести їх в інше багаторядкове текстове поле.
Рішення
Побудова форми. Розмістимо на формі два багаторядкових текстових поля з іменами Memo1 і Memo2 та встановимо для них значення властивостей Height = 180, ScrollBars = ssVertical. Розмістимо на формі також кнопку, установимо для неї Caption = ‘До квадрата’ (мал. 2).
Написання коду. Створимо обробник події Click для кнопки.procedure TForm1.Button1Click(Sender: TObject);
var a: array [0..9] of real; i: integer;
begin
for i := 0 to 9 do
a[i] := StrToFloat(Memo1.Lines[i]); // дані з рядків першого багаторядкового текстового поля перевести в числа і присвоїти відповідним елементам табличної величини
for i := 0 to 9 do
a[i] := a[i] * a[i]; // піднести значення елементів табличної величини до квадрата
Memo2.Clear; // очистити друге багаторядкове текстове поле
for i := 0 to 9 do
Memo2.Lines.Append(FloatToStr(a[i])); // вивести значення елементів табличної величини в рядки другого багаторядкового текстового поля
end;
2. Виконати практичне завдання
Зміст завдання ТУТ
Немає коментарів:
Дописати коментар